00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _DETCPCONNECTIONPROVIDER_HPP
00029 #define _DETCPCONNECTIONPROVIDER_HPP
00030
00031 #include <WINSOCK2.H>
00032
00033 #ifndef _DECONNECTIONPROVIDER_HPP
00034 #include "deConnectionProvider.hpp"
00035 #endif
00036
00037 typedef class DENET_API deTCPConnectionProvider : public deConnectionProvider
00038 {
00039 public:
00040
00041 deTCPConnectionProvider(void);
00042 virtual ~deTCPConnectionProvider(void);
00043
00044 struct ProviderInfo
00045 {
00046 DWORD dwVersion;
00047 WSADATA wsDeviceData;
00048 WSAPROTOCOL_INFO * wsProtocolInfo;
00049 int iNumProtocols;
00050 };
00051
00052 virtual deConnection * GetConnectionAt( DWORD pIndex );
00053 static deTCPConnectionProvider * GetMgr(void) { return m_Singleton; }
00054
00055 protected:
00056
00057 virtual deConnectionBin * GetAvailableBin(void);
00058 virtual deConnection * GetUnusedConnection(void);
00059
00060 virtual eNetError OnInit( DWORD dwFlags = NULL );
00061 virtual eNetError OnShutdown( DWORD dwFlags = NULL );
00062 virtual eNetError OnCreateConnection( deConnection ** pOut, void * pProviderInfo = NULL, DWORD dwFlags = NULL );
00063 virtual eNetError OnCloseConnection( deConnection ** pConn, DWORD dwFlags = NULL );
00064
00065 private:
00066
00067 ProviderInfo m_ProviderInfo;
00068
00069 static deTCPConnectionProvider * m_Singleton;
00070
00071 } deTCPConnectionProvider, *pdeTCPConnectionProvider;
00072
00073
00074 #endif